package edu.columbia.sportsleagueandroid.shared;

import java.util.List;

import com.google.web.bindery.requestfactory.shared.Request;
import com.google.web.bindery.requestfactory.shared.RequestContext;
import com.google.web.bindery.requestfactory.shared.ServiceName;

@ServiceName(value = "edu.columbia.sportsleagueandroid.server.SportsLeagueAndroidService", locator = "edu.columbia.sportsleagueandroid.server.SportsLeagueAndroidServiceLocator")
public interface SportsLeagueAndroidRequest extends RequestContext {

	Request<MatchOverProxy> createMatchOver();

	Request<MatchOverProxy> readMatchOver(Long id);

	Request<MatchOverProxy> updateMatchOver(MatchOverProxy matchover);

	Request<Void> deleteMatchOver(MatchOverProxy matchover);

	Request<List<MatchOverProxy>> queryMatchOvers();

	Request<MatchInningProxy> createMatchInning();

	Request<MatchInningProxy> readMatchInning(Long id);

	Request<MatchInningProxy> updateMatchInning(MatchInningProxy matchinning);

	Request<Void> deleteMatchInning(MatchInningProxy matchinning);

	Request<List<MatchInningProxy>> queryMatchInnings();

	Request<TeamProxy> createTeam();

	Request<TeamProxy> readTeam(Long id);

	Request<TeamProxy> updateTeam(TeamProxy team);

	Request<Void> deleteTeam(TeamProxy team);

	Request<List<TeamProxy>> queryTeams();

	Request<MatchScheduleProxy> createMatchSchedule();

	Request<MatchScheduleProxy> readMatchSchedule(Long id);

	Request<MatchScheduleProxy> updateMatchSchedule(
			MatchScheduleProxy matchschedule);

	Request<Void> deleteMatchSchedule(MatchScheduleProxy matchschedule);

	Request<List<MatchScheduleProxy>> queryMatchSchedules();

	Request<StadiumProxy> createStadium();

	Request<StadiumProxy> readStadium(Long id);

	Request<StadiumProxy> updateStadium(StadiumProxy stadium);

	Request<Void> deleteStadium(StadiumProxy stadium);

	Request<List<StadiumProxy>> queryStadiums();

	Request<PlayerProxy> createPlayer();

	Request<PlayerProxy> readPlayer(Long id);

	Request<PlayerProxy> updatePlayer(PlayerProxy player);

	Request<Void> deletePlayer(PlayerProxy player);

	Request<List<PlayerProxy>> queryPlayers();

}
